package com.example.day_0813_103.slice;

import com.example.day_0813_103.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.ability.IAbilityConnection;
import ohos.aafwk.ability.IAbilityContinuation;
import ohos.aafwk.content.Intent;
import ohos.aafwk.content.IntentParams;
import ohos.agp.components.Component;
import ohos.agp.components.TextField;
import ohos.agp.window.dialog.ToastDialog;

public class Five_AbilitySlice extends AbilitySlice implements IAbilityContinuation {

   private TextField textField; // 输入框组件
    private String string; //  迁移时文本框输入的值
    private boolean isb; //  是否迁移

    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_five_);
//      迁移按钮
        findComponentById(ResourceTable.Id_five_btn)
                .setClickedListener(this::Five_AbilitySliceDate);
        // 把输入框的 值 实例化
        textField = (TextField)findComponentById(ResourceTable.Id_five_text_f);
//     如果迁移成功 并且 文本框不为空
        if (isb && string != null) {
//      那么将 输入框的值 设置为 文本框的值
            textField.setText(string);
        }
    }
    // 开始迁移
    private void Five_AbilitySliceDate(Component component) {
        String strs = textField.getText(); //获取输入框的值
        if (strs.isEmpty()) {
            // 当输入框为空时  进行提示
            new ToastDialog(this).setText("输入框不能为空").show();
            return;
        }
        try {
            continueAbility(); // 数据迁移
        } catch (Exception e) {

        }
    }

    @Override
    public void onActive() {
        super.onActive();
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }


//  开始迁移
    @Override
    public boolean onStartContinuation() {
        return true;
    }

//  保存迁移数据
    @Override
    public boolean onSaveData(IntentParams intentParams) {
        //通过 intentParams 保存迁移时的输入框值
        // 设置一个 存值钥匙“save_date_key” 取值(textField.getText())
        intentParams.setParam("save_date_key",textField.getText());
        return true;

    }

//  恢复迁移数据
    @Override
    public boolean onRestoreData(IntentParams intentParams) {
        // 如果需要恢复输入框的值是String 通过取值钥匙“save_date_key”获得输入框值
        if (intentParams.getParam("save_date_key") instanceof String) {
        // 那么将 取得的输入框的值 赋值给全局变量string。 并返回 恢复数据成功
            string = (String)intentParams.getParam("save_date_key");
            isb = true;
        }
        return true;
    }

// 完成迁移后的回调
    @Override
    public void onCompleteContinuation(int i) {
        terminate();
    }
}
